home *** CD-ROM | disk | FTP | other *** search
/ Plug-In Power Pack for Netscape Communicator / Plug-In Power Pack for Netscape Communicator.iso / plugins / dataviews / dvtools / demos / surfdemo / surfutil.c < prev   
C/C++ Source or Header  |  1997-05-08  |  4KB  |  150 lines

  1. #ifndef lint
  2. static char SccsId[]= "@(#)surfutil.c    V1.10    3/17/95";
  3. #endif
  4.  
  5. /*------------------------------------------------------------------
  6. | file name -- surfutil.c
  7. |
  8. | Utilitiy functions.
  9. |
  10. | functions             Description
  11. | ---------             -----------
  12. | PrintMessage         Changes and Draws the Message Text Objects
  13. | SetMessage         Changes the Message Text Objects
  14. | DrawThreshRect    Draws the special threshold box
  15. | GetVdp            Returns the vdp associated with the object.
  16. |
  17. |
  18. |-----------------------------------------------------------------*/
  19.  
  20. #include "std.h"
  21. #include "dvstd.h"
  22. #include "dvtools.h"
  23. #include "VOstd.h"
  24. #include "Tfundecl.h"
  25. #include "surfdata.h"
  26. #include "dvinteract.h"
  27. #include "VOfundecl.h"
  28. #include "VUerfundecl.h"
  29. #include "surffundecl.h"
  30.  
  31.  
  32. /***************** Begin Function Declarations *************/
  33. LOCAL  ADDRESS return_vdp V_P_((OBJECT vd_obj, ADDRESS vdp, ADDRESS args));
  34. /***************** End Function Declarations *************/
  35.  
  36. /*------------------------------------------------------------------
  37. |
  38. | PrintMessage
  39. |    Copies the string into the Message Buffer and updates the
  40. |    Message Object.
  41. */
  42. void 
  43. PrintMessage (text, perm)
  44.      char *text;
  45.      BOOLPARAM perm;
  46. {
  47.   CHAR oldstring[80];
  48.  
  49.   /* Get and Set the string for the text object */
  50.   (VOID) S_STRCPY (oldstring, MessageBuf);
  51.   (VOID) S_STRCPY (MessageBuf, text);
  52.  
  53.   /* Update the message object */
  54.   (VOID) TdpDrawNextObject (MainDrawport, MessageObj);
  55.  
  56.   if (!perm)
  57.     {
  58.       /* Leave the message up so the user can read it, then
  59.       |  display the old message.  Msleep() is DataViews internal
  60.       |  (host independent) function that sleeps for n miliseconds.
  61.       */
  62.       Msleep (30);
  63.  
  64.       /* Reset the message string and redraw the message object */
  65.       (VOID) S_STRCPY (MessageBuf, oldstring);
  66.       (VOID) TdpDrawNextObject (MainDrawport, MessageObj);
  67.     }
  68. }
  69.  
  70. /*------------------------------------------------------------------
  71. |
  72. | SetMessage
  73. |    Copies the string into the Message Buffer.
  74. */
  75. void 
  76. SetMessage (text)
  77.      char *text;
  78. {
  79.   /* Just copy the test into the message buffer */
  80.   (VOID) S_STRCPY (MessageBuf, text);
  81. }
  82.  
  83. /*------------------------------------------------------------------
  84. |
  85. | DrawThreshRect
  86. |    Draws the special threshold box.  This routine calls VXcttrect.
  87. |
  88. |    VXcttrect is an internal routine that graphically displays a
  89. |    threshold table using a rectangle; DV-Draw uses this when editing
  90. |    color threshold. The values define the portion of the table to draw.
  91. |
  92. |     VOID VXcttrect(p1,value1,p2,value2,cttp,colcount,horiz_flag)
  93. |            DV_POINT *p1, *p2;        (in screen coords)
  94. |            INT value1, value2;    (Values associated with p1 and p2)
  95. |                                   (must be between 0-32387)
  96. |            COLOR_THRESHOLD *cttp; ( Pointer to color threshold table )
  97. |            INT colcount;          ( Number of colors in the table. )
  98. |            DV_BOOL horiz_flag;       ( YES draw the table horizontaly )
  99. |
  100. |
  101. */
  102. void 
  103. DrawThreshRect (object)
  104.      OBJECT object;
  105. {
  106.   RECTANGLE vp, dummy;
  107.  
  108.   /* Get the screen coordinates of the object */
  109.   VOobBox (object, &vp, &dummy);
  110.   (VOID) TdpWorldToScreen (MainDrawport, &vp.ll, &vp.ll);
  111.   (VOID) TdpWorldToScreen (MainDrawport, &vp.ur, &vp.ur);
  112.  
  113.   /* Draw the whold threshold table using this internal function */
  114.   VXcttrect (&vp.ll, 0, &vp.ur, 32767, ThreshTable, NUM_COLORS, NO);
  115. }
  116.  
  117.  
  118.  
  119. /*------------------------------------------------------------------
  120. |
  121. | GetVdp
  122. |    Uses TobForEachVdp to returns object's vdp. This function assumes
  123. |    the object only has one vdp.
  124. */
  125. ADDRESS 
  126. GetVdp (obj)
  127.      OBJECT obj;
  128. {
  129.  
  130.   /* Call return_vdp() for each vdp, this function assumes only one vdp */
  131.   return (VARDESC) TobForEachVdp (obj, return_vdp, (ADDRESS) NULL);
  132. }
  133.  
  134. /*------------------------------------------------------------------
  135. |
  136. | return_vdp
  137. |
  138. |    returns the passed vdp.
  139. |
  140. */
  141. /* ARGSUSED */
  142. LOCAL ADDRESS 
  143. return_vdp (vd_obj, vdp, args)
  144.      OBJECT vd_obj;
  145.      ADDRESS vdp;
  146.      ADDRESS args;
  147. {
  148.   return vdp;
  149. }
  150.